# （1）导入依赖
from selenium import webdriver
# 实例化driver
driver = webdriver.Chrome()
# selenium 4.x以上的版本，不需要配置dege的driver了
# 其他浏览器：firefox、chrome都去要去对应的网站下载driver，然后放到python安装目录里，还要放到scripts里
# 打开浏览器
driver.get("http://www.baidu.com/") #输入url网址，比如打开百度：http://www.baidu.com/
driver.maximize_window() # 浏览器最大化
# 获取页面元素，输入内容
"""
导入元素操作模块
from selenium.webdriver.common.by import By
输入查找元素的方式：
find_element
"""
from selenium.webdriver.common.by import By
# 八大定位之一 ： 通过ID定位输入框，输入内容。
# ID是唯一的，所以用了find_element
"""
input_ele = driver.find_element(By.ID,'kw')
input_ele.send_keys("selenium") # send_keys输入内容的意思
"""
# 八大定位之一： 通过Name定位输入框，输入内容
# Name是唯一的，所以用了find_element
"""
driver.find_element(By.NAME,'wd').send_keys("王长帅不是很帅")
"""
# 八大定位之一： 通过CLASS定位输入框，输入内容
# CLASS NAME是唯一的，所以用了find_element
"""
driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("王长帅不是很帅的王长帅的长帅的长帅")
"""
# 八大定位之一： 通过XPATH定位输入框，输入内容
# XPATH是根据html路径定位，所以也是唯一的，直接find_element就可以
"""
driver.find_element(By.XPATH,"//*[@id='kw']").send_keys("王长长")
"""
# 八大定位之一：通过CSS SELECTOR 定位输入框，输入内容
# CSS根据层叠样式表路径定位，所以也是唯一的，直接find_element就可以
"""
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("selenium")
"""
# 八大定位之一：通过TAG NAME 定位输入框，输入内容
# TAG NAME是根据标签名定位内容
# 因为input标签有很多个，所以不是唯一，需要用find_elements
# 第八个input标签是我要的 按照索引取值是第7个
"""
driver.find_elements(By.TAG_NAME,'input')[7].send_keys("王长帅不是很帅的长帅第七个长帅不是很帅")
"""
# TAG NAME 一般都是联合使用的，目的就是当一组标签都没有可用的定位方式时，用遍历的方式可以实现元素定位
# step 1: 收集所有的input标签
"""
inputs = driver.find_elements(By.TAG_NAME,'input')

# step 2: 找到想要操作的input标签中，任何一组唯一的key、value定位操作
for i in inputs:
    if i.get_attribute("maxlength") == "255": # get_attribute() 根据一组元素中的某个key，获取value
        i.send_keys("王长帅不是很帅的maxlength")
"""
# 八大定位之一：link TEXT定位，精确文本/全称
# 定位a标签，超链文本  点击地图
"""
driver.find_element(By.LINK_TEXT,"地图").click()
"""
# 八大定位之一：PARTIAL_LINK_TEXT 模糊定位
# 定位a标签，超联文本，输入部分的就可以。 点击hao123
"""
driver.find_element(By.PARTIAL_LINK_TEXT,'hao').click()
"""













